草庐IT

Lua 垃圾回收

全部标签

回收瓶中的Android旋转器的问题

我有一个RecyclerView包含复杂项目,由包含一个类的类表示TextView小部件,aSpinner小部件&一个EditText小部件。(考虑一个任务列表,具有任务名称,一个旋转器,可以选择处理任务的阶段,以及该处理阶段的完成日期。)此列表的数据来自文件,列表中的项目的更改将写回文件。当用户稍后返回应用程序时,列表应像他之前看到的那样反映数据。当前,我的应用显示项目列表,但我不知道如何将旋转器的初始值设置为从文件读取的值。如何为列表中的每个旋转器设置不同的初始选择?当前,当用户从Spinner,列表消失了,选择并未作为用户的选择出现。我从另一个帖子中看到-Android:旋转器未

一篇看懂JS垃圾回收机制

前言垃圾回收(GarbageCollection)是一种内存管理机制,用于检测和清理不再被程序使用的内存。垃圾回收器会在JS引擎(浏览器或者nodejs)内部周期性地运行,开发者无需手动操作。但是,了解垃圾回收机制的工作原理有助于我们写出更加高效的JS代码,使JS引擎更好的帮助我们完成垃圾回收,避免我们开发的应用出现内存泄漏问题。垃圾是怎样产生的?JS中的数据类型有原始类型和引用类型,原始类型占用的内存极小,一般是字符串、数字、布尔值这些,他们被存放在栈(stack)中。引用类型可以是数组、普通对象或者函数,他们一般会包含较多的数据,所以引用类型的实际数据存放在内存的堆(heap)中,然后在栈

C++ Lua 从 Lua 表中获取值

我正在尝试从Lua表中获取值。这是我在Program.cpp中写的:lua_State*lua=luaL_newstate();luaL_openlibs(lua);luaL_dofile(program->getLuaState(),"Script.lua");lua_getglobal(lua,"table");lua_pushstring(lua,"x");lua_gettable(lua,-2);printf("%i",lua_tonumber(lua,-1));我在Script.lua中写了这个:table={x=12,y=32}问题是这只会在控制台中写入0。我检查过lua文

c++ - 传递 C++ 对象以便 Lua 可以使用它

我了解Luabind,我可以公开类,然后可以在lua中创建这些类的实例。module[L_state][class_("Player").def(constructor()).def("Update",&Player::Update)];test.luaplayer=Player()player:Update()但是如果我想在C++中创建播放器实例怎么办,因为我想在C++中调用它的成员,但我也想将播放器的相同实例公开给Lua,以便它仍然可以调用它的函数,例如:player:Update() 最佳答案 您可以通过luabind将值压入

c++ - 从 C++ 读取 Lua 表

我已经为这个简单的事情尝试了很多替代方案,但无法让它发挥作用。我希望用户在第一步中从Lua定义一个表:a={["something"]=10}--key=something,value=10然后,在第二步中,用户将从Lua中调用一个用C++设计的函数:b=afunction(a)--afunctionwillbedesignedinC++C++代码:intlua_afunction(lua_State*L){intnargs=lua_gettop(L);if(nargs>1)throw"ERROR:Only1argumentintheformoftablemustbesupplied.

c++ - Lua C++ 表迭代

我对lua_next的真正工作原理有点困惑。用户定义一个表:a={["a1"]=20,["a2"]=30}我想用C++代码打印这张表:inlineintlua_print(lua_State*L){wxStringwxReturnStr=wxEmptyString;wxStringtempString=wxEmptyString;intnargs=lua_gettop(L);for(inti=1;i当我从Lua调用时,这段代码运行良好:print(a)--Workswell但是,假设我在Lua中有一个表:b={["b1"]=10,["b2"]=15}如果我这样调用代码:print(a,

c++ - 如何通过 SWIG 将 lua 嵌入到 C++ 中

目前,我有一组SWIG包装器用于我的类(class),并且全部构建。我可以创建一个lua虚拟机并加载我的包装器,但那时我很困惑。谷歌搜索告诉我如何将c++放入lua中,但没有告诉我如何将lua放入c++。我真正想做的就是设法实例化一个lua对象并将它传递给我的主游戏引擎对象指针,从那里我可以管理 最佳答案 看看《ProgramminginLua》这本书,它有一节关于LuaCAPI.要调用Lua函数,请使用lua_pcall,相当于lua_call(有一个简短的例子)除了它会捕获Lua运行时错误。您必须已经加载并运行了一次脚本(使用例

微软罗列 Windows 11 完整 AI 技能:显示电池信息、清空回收站、开启省电模式等

IT之家 2月21日消息,微软今天更新了 Windows11 Build26058预览版更新日志文件,邀请Canary频道的WindowsInsider项目成员,进一步测试Copilot的各项新增技能。微软在更新日志中详细罗列了Copilot在Windows11系统中具备的技能,用户通过聊天的方式获取相关信息或者要求其执行某项操作,IT之家附上列表如下:询问当前可用的无线网络询问当前设备配置信息以及系统相关内容询问当前设备电池相关信息要求执行清理存储操作要求执行清空回收站操作要求切换启用省电模式要求显示当前设备开机启动应用要求显示当前设备的IP地址要求显示系统、设备或者存储信息无障碍功能:要求

c++ - Lua、元表和全局变量

我正在努力改进我们为机器人玩家处理Lua脚本的方式Bitfighter.目前,每个机器人都有自己的L实例,我们正试图通过交换环境表让它们共享一个。请注意,机器人可能是完全不同的脚本。我意识到这个方法在Lua5.2中被弃用了,但是我们目前使用的是lua-vec,它仍然使用Lua5.1。该游戏是用C++编写的。所以...首先我们创建一个环境,并将其命名为://Createatablewithroomfor0arrayand1non-arrayelementslua_createtable(L,0,1);//--tab//Settheglobalstabletohandleanyreques

C++ Lua 错误处理

我正在开发一个程序(C++,使用D3D9)和Lua。我已经实现了LUAApi,除了错误处理之外,一切正常。我在谷歌上搜索了很多,然后找到了一个可以处理大部分错误的解决方案。我写这篇文章是因为其他错误。我将在图片中向您展示一些相关代码。现在最重要的函数:PerformCall()和LuaErrorReport()但是,正如我之前所说:正在处理一些错误。但这个不是。 最佳答案 关于可能出错的一些想法。您正在为lua_pcall传递L,而LuaErrorReport获取State()。他们可能在不同的lua_State上工作,这就像在协程